import { defineStore } from 'pinia';
import Request from '@/utils/Request';

export const useUserStore = defineStore('user', {
    state: () => ({
        userProfile: null,
    }),
    actions: {
        // 从后端获取并设置用户档案
        async fetchUserProfile() {
            if (this.userProfile) return this.userProfile; // 如果已有数据，则不再请求
            try {
                // Request.js 拦截器已处理外层，response 就是后端返回的 { code, msg, data }
                // 所以我们直接取 response.data 即可
                const response = await Request.get('/profiles/me');
                this.userProfile = response.data;
                return this.userProfile;
            } catch (error) {
                console.error('获取用户档案失败:', error);
                // 可以在这里添加错误处理，例如强制用户登出
                return null;
            }
        },
        // 清除用户档案（用于退出登录）
        clearUserProfile() {
            this.userProfile = null;
        },
    },
    // 开启持久化
    persist: true,
});